<?php

namespace app\api\controller;

use app\common\controller\Api;
use app\common\library\Ems;
use app\common\library\Sms;
use fast\Random;
use think\Config;
use think\Validate;
use fast\Http;

/**
 * 会员接口
 */
class User extends Api
{
    protected $noNeedLogin = ['login', 'mobilelogin', 'register', 'resetpwd', 'changeemail', 'changemobile', 'third', 'Wechat', 'thirds'];
    protected $noNeedRight = '*';
    const GET_OPENID_URL = "https://api.weixin.qq.com/sns/jscode2session";

    public function _initialize()
    {
        parent::_initialize();

        if (!Config::get('fastadmin.usercenter')) {
            $this->error(__('User center already closed'));
        }
    }

    /**
     * 会员中心
     */
    public function index()
    {
        $this->success(__('获取成功'), $this->auth->getUserinfo());
    }

    /**
     * 会员登录
     *
     * @ApiMethod (POST)
     * @ApiParams (name="account", type="string", required=true, description="账号")
     * @ApiParams (name="password", type="string", required=true, description="密码")
     */
    public function login()
    {
        $account = $this->request->post('account');
        $password = $this->request->post('password');
        if (!$account || !$password) {
            $this->error(__('Invalid parameters'));
        }
        $ret = $this->auth->login($account, $password);
        if ($ret) {
            $data = ['userinfo' => $this->auth->getUserinfo()];
            $this->success(__('Logged in successful'), $data);
        } else {
            $this->error($this->auth->getError());
        }
    }

    /**
     * 手机验证码登录
     *
     * @ApiMethod (POST)
     * @ApiParams (name="mobile", type="string", required=true, description="手机号")
     * @ApiParams (name="captcha", type="string", required=true, description="验证码")
     */
    public function mobilelogin()
    {
        $mobile = $this->request->post('mobile');
        $captcha = $this->request->post('captcha');
        if (!$mobile || !$captcha) {
            $this->error(__('Invalid parameters'));
        }
        if (!Validate::regex($mobile, "^1\d{10}$")) {
            $this->error(__('Mobile is incorrect'));
        }
        if (!Sms::check($mobile, $captcha, 'mobilelogin')) {
            $this->error(__('Captcha is incorrect'));
        }
        $user = \app\common\model\User::getByMobile($mobile);
        if ($user) {
            if ($user->status != 'normal') {
                $this->error(__('Account is locked'));
            }
            //如果已经有账号则直接登录
            $ret = $this->auth->direct($user->id);
        } else {
            $ret = $this->auth->register($mobile, Random::alnum(), '', $mobile, []);
        }
        if ($ret) {
            Sms::flush($mobile, 'mobilelogin');
            $data = ['userinfo' => $this->auth->getUserinfo()];
            $this->success(__('Logged in successful'), $data);
        } else {
            $this->error($this->auth->getError());
        }
    }

    /**
     * 注册会员
     *
     * @ApiMethod (POST)
     * @ApiParams (name="username", type="string", required=true, description="用户名")
     * @ApiParams (name="password", type="string", required=true, description="密码")
     * @ApiParams (name="email", type="string", required=true, description="邮箱")
     * @ApiParams (name="mobile", type="string", required=true, description="手机号")
     * @ApiParams (name="code", type="string", required=true, description="验证码")
     */
    public function register()
    {
        $username = $this->request->post('username');
        $password = $this->request->post('password');
        $email = $this->request->post('email');
        $mobile = $this->request->post('mobile');
        $code = $this->request->post('code');
        if (!$username || !$password) {
            $this->error(__('Invalid parameters'));
        }
        if ($email && !Validate::is($email, "email")) {
            $this->error(__('Email is incorrect'));
        }
        if ($mobile && !Validate::regex($mobile, "^1\d{10}$")) {
            $this->error(__('Mobile is incorrect'));
        }
        $ret = Sms::check($mobile, $code, 'register');
        if (!$ret) {
            $this->error(__('Captcha is incorrect'));
        }
        $ret = $this->auth->register($username, $password, $email, $mobile, []);
        if ($ret) {
            $data = ['userinfo' => $this->auth->getUserinfo()];
            $this->success(__('Sign up successful'), $data);
        } else {
            $this->error($this->auth->getError());
        }
    }

    /**
     * 退出登录
     * @ApiMethod (POST)
     */
    public function logout()
    {
        if (!$this->request->isPost()) {
            $this->error(__('Invalid parameters'));
        }
        $this->auth->logout();
        $this->success(__('Logout successful'));
    }

    /**
     * 修改会员个人信息
     *
     * @ApiMethod (POST)
     * @ApiParams (name="avatar", type="string", required=true, description="头像地址")
     * @ApiParams (name="username", type="string", required=true, description="用户名")
     * @ApiParams (name="nickname", type="string", required=true, description="昵称")
     * @ApiParams (name="bio", type="string", required=true, description="个人简介")
     */
    public function profile()
    {
        $user = $this->auth->getUser();
        $username = $this->request->post('username');
        $nickname = $this->request->post('nickname');
        $bio = $this->request->post('bio');
        $school_id = $this->request->post('school_id');
        $avatar = $this->request->post('avatar', '', 'trim,strip_tags,htmlspecialchars');
        if ($username) {
            $exists = \app\common\model\User::where('username', $username)->where('id', '<>', $this->auth->id)->find();
            if ($exists) {
                $this->error(__('Username already exists'));
            }
            $user->username = $username;
        }
        if ($nickname) {
            $exists = \app\common\model\User::where('nickname', $nickname)->where('id', '<>', $this->auth->id)->find();
            if ($exists) {
                $this->error(__('Nickname already exists'));
            }
            $user->nickname = $nickname;
        }
        $user->bio = $bio;
        $user->avatar = $avatar;
        $user->school_id = $school_id;
        $user->save();
        $this->success();
    }

    /**
     * 修改邮箱
     *
     * @ApiMethod (POST)
     * @ApiParams (name="email", type="string", required=true, description="邮箱")
     * @ApiParams (name="captcha", type="string", required=true, description="验证码")
     */
    public function changeemail()
    {
        $user = $this->auth->getUser();
        $email = $this->request->post('email');
        $captcha = $this->request->post('captcha');
        if (!$email || !$captcha) {
            $this->error(__('Invalid parameters'));
        }
        if (!Validate::is($email, "email")) {
            $this->error(__('Email is incorrect'));
        }
        if (\app\common\model\User::where('email', $email)->where('id', '<>', $user->id)->find()) {
            $this->error(__('Email already exists'));
        }
        $result = Ems::check($email, $captcha, 'changeemail');
        if (!$result) {
            $this->error(__('Captcha is incorrect'));
        }
        $verification = $user->verification;
        $verification->email = 1;
        $user->verification = $verification;
        $user->email = $email;
        $user->save();

        Ems::flush($email, 'changeemail');
        $this->success();
    }

    /**
     * 修改手机号
     *
     * @ApiMethod (POST)
     * @ApiParams (name="mobile", type="string", required=true, description="手机号")
     * @ApiParams (name="captcha", type="string", required=true, description="验证码")
     */
    public function changemobile()
    {
        $user = $this->auth->getUser();
        $mobile = $this->request->post('mobile');
        $captcha = $this->request->post('captcha');
        if (!$mobile || !$captcha) {
            $this->error(__('Invalid parameters'));
        }
        if (!Validate::regex($mobile, "^1\d{10}$")) {
            $this->error(__('Mobile is incorrect'));
        }
        if (\app\common\model\User::where('mobile', $mobile)->where('id', '<>', $user->id)->find()) {
            $this->error(__('Mobile already exists'));
        }
        $result = Sms::check($mobile, $captcha, 'changemobile');
        if (!$result) {
            $this->error(__('Captcha is incorrect'));
        }
        $verification = $user->verification;
        $verification->mobile = 1;
        $user->verification = $verification;
        $user->mobile = $mobile;
        $user->save();

        Sms::flush($mobile, 'changemobile');
        $this->success();
    }

    /**
     * 第三方登录
     *
     * @ApiMethod (POST)
     * @ApiParams (name="platform", type="string", required=true, description="平台名称")
     * @ApiParams (name="code", type="string", required=true, description="Code码")
     */
    // public function thirds()
    // {
    //     $url = url('user/index');
    //     $platform = $this->request->post("platform");
    //     $code = $this->request->post("code");
    //     $config = get_addon_config('third');
    //     if (!$config || !isset($config[$platform])) {
    //         $this->error(__('Invalid parameters'));
    //     }
    //     $app = new \addons\third\library\Application($config);
    //     //通过code换access_token和绑定会员

    //     $result = $app->{$platform}->getUserInfo(['code' => $code]);
    //     echo json_encode($result, JSON_UNESCAPED_UNICODE);
    //     die;
    //     if ($result) {
    //         $loginret = \addons\third\library\Service::connect($platform, $result);
    //         if ($loginret) {
    //             $data = [
    //                 'userinfo'  => $this->auth->getUserinfo(),
    //                 'thirdinfo' => $result
    //             ];
    //             $this->success(__('Logged in successful'), $data);
    //         }
    //     }
    //     $this->error(__('Operation failed'), $url);
    // }

    /**
     * 重置密码
     *
     * @ApiMethod (POST)
     * @ApiParams (name="mobile", type="string", required=true, description="手机号")
     * @ApiParams (name="newpassword", type="string", required=true, description="新密码")
     * @ApiParams (name="captcha", type="string", required=true, description="验证码")
     */
    public function resetpwd()
    {
        $type = $this->request->post("type", "mobile");
        $mobile = $this->request->post("mobile");
        $email = $this->request->post("email");
        $newpassword = $this->request->post("newpassword");
        $captcha = $this->request->post("captcha");
        if (!$newpassword || !$captcha) {
            $this->error(__('Invalid parameters'));
        }
        //验证Token
        if (!Validate::make()->check(['newpassword' => $newpassword], ['newpassword' => 'require|regex:\S{6,30}'])) {
            $this->error(__('Password must be 6 to 30 characters'));
        }
        if ($type == 'mobile') {
            if (!Validate::regex($mobile, "^1\d{10}$")) {
                $this->error(__('Mobile is incorrect'));
            }
            $user = \app\common\model\User::getByMobile($mobile);
            if (!$user) {
                $this->error(__('User not found'));
            }
            $ret = Sms::check($mobile, $captcha, 'resetpwd');
            if (!$ret) {
                $this->error(__('Captcha is incorrect'));
            }
            Sms::flush($mobile, 'resetpwd');
        } else {
            if (!Validate::is($email, "email")) {
                $this->error(__('Email is incorrect'));
            }
            $user = \app\common\model\User::getByEmail($email);
            if (!$user) {
                $this->error(__('User not found'));
            }
            $ret = Ems::check($email, $captcha, 'resetpwd');
            if (!$ret) {
                $this->error(__('Captcha is incorrect'));
            }
            Ems::flush($email, 'resetpwd');
        }
        //模拟一次登录
        $this->auth->direct($user->id);
        $ret = $this->auth->changepwd($newpassword, '', true);
        if ($ret) {
            $this->success(__('Reset password successful'));
        } else {
            $this->error($this->auth->getError());
        }
    }


    /**
     * 第三方登录
     *
     * @ApiMethod (POST)
     * @param string $provider     平台名称
     * @param string $userinfo     用户信息
     */
    public function third()
    {

        $code = $this->request->post("code");
        $ret = $this->getOpenId($code);
        $openId = $ret['openid'];
        if ($openId) {
            $user = model('app\common\model\User')->where('open_id', $openId)->find();
            if ($user) {
                $this->auth->direct($user->id);
                $this->success(__('Logged in successful'), $this->auth->getUserinfo());
            } else {
                $username = $this->nickname(1);
                $avatarUrl = config('site')['avatar'];
                $password = $openId;
                $ret = $this->auth->register($username, $password, '', '', [], $avatarUrl, $openId);
                if ($ret) {
                    $this->success(__('注册成功'), $this->auth->getUserinfo());
                } else {
                    $this->error("注册失败", $this->auth->getError());
                }
            }
        }
        $this->error("参数错误", $this->auth->getError());
    }


    /**
     *获取微信小程序配置
     *
     * @ApiMethod (POST)
     * @param string $provider     平台名称
     * @param string $userinfo     用户信息
     */
    public function Wechat()
    {
        $app = array(
            'app_id' => config('site')['app_id'],
            'app_secret' => config('site')['app_secret'],
        );
        $this->success('获取成功', $app);
    }


    /**
     * 获取openid
     * @param string $code code
     * @return array
     */
    public function getOpenId($code = '')
    {
        if (!$code) {
            return [];
        }
        $queryarr = array(
            "appid"      => config('site')['app_id'],
            "secret"     => config('site')['app_secret'],
            "js_code"       => $code,
            "grant_type" => "authorization_code",
        );
        $response = Http::get(self::GET_OPENID_URL, $queryarr);
        $ret = (array)json_decode($response, true);
        return $ret ?: [];
    }

    /**
     * @param int $type 1生成昵称，2生成姓名
     * //汉语 - 给用户自动生成昵称
     */
    public function nickname($type)
    {
        /**
         * 随机昵称 形容词
         */
        $nicheng_tou = [
            '迷你的',
            '鲜艳的',
            '飞快的',
            '真实的',
            '清新的',
            '幸福的',
            '可耐的',
            '快乐的',
            '冷静的',
            '醉熏的',
            '潇洒的',
            '糊涂的',
            '积极的',
            '冷酷的',
            '深情的',
            '粗暴的',
            '温柔的',
            '可爱的',
            '愉快的',
            '义气的',
            '认真的',
            '威武的',
            '帅气的',
            '传统的',
            '潇洒的',
            '漂亮的',
            '自然的',
            '专一的',
            '听话的',
            '昏睡的',
            '狂野的',
            '等待的',
            '搞怪的',
            '幽默的',
            '魁梧的',
            '活泼的',
            '开心的',
            '高兴的',
            '超帅的',
            '留胡子的',
            '坦率的',
            '直率的',
            '轻松的',
            '痴情的',
            '完美的',
            '精明的',
            '无聊的',
            '有魅力的',
            '丰富的',
            '繁荣的',
            '饱满的',
            '炙热的',
            '暴躁的',
            '碧蓝的',
            '俊逸的',
            '英勇的',
            '健忘的',
            '故意的',
            '无心的',
            '土豪的',
            '朴实的',
            '兴奋的',
            '幸福的',
            '淡定的',
            '不安的',
            '阔达的',
            '孤独的',
            '独特的',
            '疯狂的',
            '时尚的',
            '落后的',
            '风趣的',
            '忧伤的',
            '大胆的',
            '爱笑的',
            '矮小的',
            '健康的',
            '合适的',
            '玩命的',
            '沉默的',
            '斯文的',
            '香蕉',
            '苹果',
            '鲤鱼',
            '鳗鱼',
            '任性的',
            '细心的',
            '粗心的',
            '大意的',
            '甜甜的',
            '酷酷的',
            '健壮的',
            '英俊的',
            '霸气的',
            '阳光的',
            '默默的',
            '大力的',
            '孝顺的',
            '忧虑的',
            '着急的',
            '紧张的',
            '善良的',
            '凶狠的',
            '害怕的',
            '重要的',
            '危机的',
            '欢喜的',
            '欣慰的',
            '满意的',
            '跳跃的',
            '诚心的',
            '称心的',
            '如意的',
            '怡然的',
            '娇气的',
            '无奈的',
            '无语的',
            '激动的',
            '愤怒的',
            '美好的',
            '感动的',
            '激情的',
            '激昂的',
            '震动的',
            '虚拟的',
            '超级的',
            '寒冷的',
            '精明的',
            '明理的',
            '犹豫的',
            '忧郁的',
            '寂寞的',
            '奋斗的',
            '勤奋的',
            '现代的',
            '过时的',
            '稳重的',
            '热情的',
            '含蓄的',
            '开放的',
            '无辜的',
            '多情的',
            '纯真的',
            '拉长的',
            '热心的',
            '从容的',
            '体贴的',
            '风中的',
            '曾经的',
            '追寻的',
            '儒雅的',
            '优雅的',
            '开朗的',
            '外向的',
            '内向的',
            '清爽的',
            '文艺的',
            '长情的',
            '平常的',
            '单身的',
            '伶俐的',
            '高大的',
            '懦弱的',
            '柔弱的',
            '爱笑的',
            '乐观的',
            '耍酷的',
            '酷炫的',
            '神勇的',
            '年轻的',
            '唠叨的',
            '瘦瘦的',
            '无情的',
            '包容的',
            '顺心的',
            '畅快的',
            '舒适的',
            '靓丽的',
            '负责的',
            '背后的',
            '简单的',
            '谦让的',
            '彩色的',
            '缥缈的',
            '欢呼的',
            '生动的',
            '复杂的',
            '慈祥的',
            '仁爱的',
            '魔幻的',
            '虚幻的',
            '淡然的',
            '受伤的',
            '雪白的',
            '高高的',
            '糟糕的',
            '顺利的',
            '闪闪的',
            '羞涩的',
            '缓慢的',
            '迅速的',
            '优秀的',
            '聪明的',
            '含糊的',
            '俏皮的',
            '淡淡的',
            '坚强的',
            '平淡的',
            '欣喜的',
            '能干的',
            '灵巧的',
            '友好的',
            '机智的',
            '机灵的',
            '正直的',
            '谨慎的',
            '俭朴的',
            '殷勤的',
            '虚心的',
            '辛勤的',
            '自觉的',
            '无私的',
            '无限的',
            '踏实的',
            '老实的',
            '现实的',
            '可靠的',
            '务实的',
            '拼搏的',
            '个性的',
            '粗犷的',
            '活力的',
            '成就的',
            '勤劳的',
            '单纯的',
            '落寞的',
            '朴素的',
            '悲凉的',
            '忧心的',
            '洁净的',
            '清秀的',
            '自由的',
            '小巧的',
            '单薄的',
            '贪玩的',
            '刻苦的',
            '干净的',
            '壮观的',
            '和谐的',
            '文静的',
            '调皮的',
            '害羞的',
            '安详的',
            '自信的',
            '端庄的',
            '坚定的',
            '美满的',
            '舒心的',
            '温暖的',
            '专注的',
            '勤恳的',
            '美丽的',
            '腼腆的',
            '优美的',
            '甜美的',
            '甜蜜的',
            '整齐的',
            '动人的',
            '典雅的',
            '尊敬的',
            '舒服的',
            '妩媚的',
            '秀丽的',
            '喜悦的',
            '甜美的',
            '彪壮的',
            '强健的',
            '大方的',
            '俊秀的',
            '聪慧的',
            '迷人的',
            '陶醉的',
            '悦耳的',
            '动听的',
            '明亮的',
            '结实的',
            '魁梧的',
            '标致的',
            '清脆的',
            '敏感的',
            '光亮的',
            '大气的',
            '老迟到的',
            '知性的',
            '冷傲的',
            '呆萌的',
            '野性的',
            '隐形的',
            '笑点低的',
            '微笑的',
            '笨笨的',
            '难过的',
            '沉静的',
            '火星上的',
            '失眠的',
            '安静的',
            '纯情的',
            '要减肥的',
            '迷路的',
            '烂漫的',
            '哭泣的',
            '贤惠的',
            '苗条的',
            '温婉的',
            '发嗲的',
            '会撒娇的',
            '贪玩的',
            '执着的',
            '眯眯眼的',
            '花痴的',
            '想人陪的',
            '眼睛大的',
            '高贵的',
            '傲娇的',
            '心灵美的',
            '爱撒娇的',
            '细腻的',
            '天真的',
            '怕黑的',
            '感性的',
            '飘逸的',
            '怕孤独的',
            '忐忑的',
            '高挑的',
            '傻傻的',
            '冷艳的',
            '爱听歌的',
            '还单身的',
            '怕孤单的',
            '懵懂的'
        ];
        $nicheng_wei = [
            '嚓茶',
            '皮皮虾',
            '皮卡丘',
            '马里奥',
            '小霸王',
            '凉面',
            '便当',
            '毛豆',
            '花生',
            '可乐',
            '灯泡',
            '哈密瓜',
            '野狼',
            '背包',
            '眼神',
            '缘分',
            '雪碧',
            '人生',
            '牛排',
            '蚂蚁',
            '飞鸟',
            '灰狼',
            '斑马',
            '汉堡',
            '悟空',
            '巨人',
            '绿茶',
            '自行车',
            '保温杯',
            '大碗',
            '墨镜',
            '魔镜',
            '煎饼',
            '月饼',
            '月亮',
            '星星',
            '芝麻',
            '啤酒',
            '玫瑰',
            '大叔',
            '小伙',
            '哈密瓜，数据线',
            '太阳',
            '树叶',
            '芹菜',
            '黄蜂',
            '蜜粉',
            '蜜蜂',
            '信封',
            '西装',
            '外套',
            '裙子',
            '大象',
            '猫咪',
            '母鸡',
            '路灯',
            '蓝天',
            '白云',
            '星月',
            '彩虹',
            '微笑',
            '摩托',
            '板栗',
            '高山',
            '大地',
            '大树',
            '电灯胆',
            '砖头',
            '楼房',
            '水池',
            '鸡翅',
            '蜻蜓',
            '红牛',
            '咖啡',
            '机器猫',
            '枕头',
            '大船',
            '诺言',
            '钢笔',
            '刺猬',
            '天空',
            '飞机',
            '大炮',
            '冬天',
            '洋葱',
            '春天',
            '夏天',
            '秋天',
            '冬日',
            '航空',
            '毛衣',
            '豌豆',
            '黑米',
            '玉米',
            '眼睛',
            '老鼠',
            '白羊',
            '帅哥',
            '美女',
            '季节',
            '鲜花',
            '服饰',
            '裙子',
            '白开水',
            '秀发',
            '大山',
            '火车',
            '汽车',
            '歌曲',
            '舞蹈',
            '老师',
            '导师',
            '方盒',
            '大米',
            '麦片',
            '水杯',
            '水壶',
            '手套',
            '鞋子',
            '自行车',
            '鼠标',
            '手机',
            '电脑',
            '书本',
            '奇迹',
            '身影',
            '香烟',
            '夕阳',
            '台灯',
            '宝贝',
            '未来',
            '皮带',
            '钥匙',
            '心锁',
            '故事',
            '花瓣',
            '滑板',
            '画笔',
            '画板',
            '学姐',
            '店员',
            '电源',
            '饼干',
            '宝马',
            '过客',
            '大白',
            '时光',
            '石头',
            '钻石',
            '河马',
            '犀牛',
            '西牛',
            '绿草',
            '抽屉',
            '柜子',
            '往事',
            '寒风',
            '路人',
            '橘子',
            '耳机',
            '鸵鸟',
            '朋友',
            '苗条',
            '铅笔',
            '钢笔',
            '硬币',
            '热狗',
            '大侠',
            '御姐',
            '萝莉',
            '毛巾',
            '期待',
            '盼望',
            '白昼',
            '黑夜',
            '大门',
            '黑裤',
            '钢铁侠',
            '哑铃',
            '板凳',
            '枫叶',
            '荷花',
            '乌龟',
            '仙人掌',
            '衬衫',
            '大神',
            '草丛',
            '早晨',
            '心情',
            '茉莉',
            '流沙',
            '蜗牛',
            '战斗机',
            '冥王星',
            '猎豹',
            '棒球',
            '篮球',
            '乐曲',
            '电话',
            '网络',
            '世界',
            '中心',
            '鱼',
            '鸡',
            '狗',
            '老虎',
            '鸭子',
            '雨',
            '羽毛',
            '翅膀',
            '外套',
            '火',
            '丝袜',
            '书包',
            '钢笔',
            '冷风',
            '八宝粥',
            '烤鸡',
            '大雁',
            '音响',
            '招牌',
            '胡萝卜',
            '冰棍',
            '帽子',
            '菠萝',
            '蛋挞',
            '香水',
            '泥猴桃',
            '吐司',
            '溪流',
            '黄豆',
            '樱桃',
            '小鸽子',
            '小蝴蝶',
            '爆米花',
            '花卷',
            '小鸭子',
            '小海豚',
            '日记本',
            '小熊猫',
            '小懒猪',
            '小懒虫',
            '荔枝',
            '镜子',
            '曲奇',
            '金针菇',
            '小松鼠',
            '小虾米',
            '酒窝',
            '紫菜',
            '金鱼',
            '柚子',
            '果汁',
            '百褶裙',
            '项链',
            '帆布鞋',
            '火龙果',
            '奇异果',
            '煎蛋',
            '唇彩',
            '小土豆',
            '高跟鞋',
            '戒指',
            '雪糕',
            '睫毛',
            '铃铛',
            '手链',
            '香氛',
            '红酒',
            '月光',
            '酸奶',
            '银耳汤',
            '咖啡豆',
            '小蜜蜂',
            '小蚂蚁',
            '蜡烛',
            '棉花糖',
            '向日葵',
            '水蜜桃',
            '小蝴蝶',
            '小刺猬',
            '小丸子',
            '指甲油',
            '康乃馨',
            '糖豆',
            '薯片',
            '口红',
            '超短裙',
            '乌冬面',
            '冰淇淋',
            '棒棒糖',
            '长颈鹿',
            '豆芽',
            '发箍',
            '发卡',
            '发夹',
            '发带',
            '铃铛',
            '小馒头',
            '小笼包',
            '小甜瓜',
            '冬瓜',
            '香菇',
            '小兔子',
            '含羞草',
            '短靴',
            '睫毛膏',
            '小蘑菇',
            '跳跳糖',
            '小白菜',
            '草莓',
            '柠檬',
            '月饼',
            '百合',
            '纸鹤',
            '小天鹅',
            '云朵',
            '芒果',
            '面包',
            '海燕',
            '小猫咪',
            '龙猫',
            '唇膏',
            '鞋垫',
            '羊',
            '黑猫',
            '白猫',
            '万宝路',
            '金毛',
            '山水',
            '音响',
            '纸飞机',
            '烧鹅'
        ];
        /**
         * 百家姓
         */
        $arrXing = [
            '赵',
            '钱',
            '孙',
            '李',
            '周',
            '吴',
            '郑',
            '王',
            '冯',
            '陈',
            '褚',
            '卫',
            '蒋',
            '沈',
            '韩',
            '杨',
            '朱',
            '秦',
            '尤',
            '许',
            '何',
            '吕',
            '施',
            '张',
            '孔',
            '曹',
            '严',
            '华',
            '金',
            '魏',
            '陶',
            '姜',
            '戚',
            '谢',
            '邹',
            '喻',
            '柏',
            '水',
            '窦',
            '章',
            '云',
            '苏',
            '潘',
            '葛',
            '奚',
            '范',
            '彭',
            '郎',
            '鲁',
            '韦',
            '昌',
            '马',
            '苗',
            '凤',
            '花',
            '方',
            '任',
            '袁',
            '柳',
            '鲍',
            '史',
            '唐',
            '费',
            '薛',
            '雷',
            '贺',
            '倪',
            '汤',
            '滕',
            '殷',
            '罗',
            '毕',
            '郝',
            '安',
            '常',
            '傅',
            '卞',
            '齐',
            '元',
            '顾',
            '孟',
            '平',
            '黄',
            '穆',
            '萧',
            '尹',
            '姚',
            '邵',
            '湛',
            '汪',
            '祁',
            '毛',
            '狄',
            '米',
            '伏',
            '成',
            '戴',
            '谈',
            '宋',
            '茅',
            '庞',
            '熊',
            '纪',
            '舒',
            '屈',
            '项',
            '祝',
            '董',
            '梁',
            '杜',
            '阮',
            '蓝',
            '闵',
            '季',
            '贾',
            '路',
            '娄',
            '江',
            '童',
            '颜',
            '郭',
            '梅',
            '盛',
            '林',
            '钟',
            '徐',
            '邱',
            '骆',
            '高',
            '夏',
            '蔡',
            '田',
            '樊',
            '胡',
            '凌',
            '霍',
            '虞',
            '万',
            '支',
            '柯',
            '管',
            '卢',
            '莫',
            '柯',
            '房',
            '裘',
            '缪',
            '解',
            '应',
            '宗',
            '丁',
            '宣',
            '邓',
            '单',
            '杭',
            '洪',
            '包',
            '诸',
            '左',
            '石',
            '崔',
            '吉',
            '龚',
            '程',
            '嵇',
            '邢',
            '裴',
            '陆',
            '荣',
            '翁',
            '荀',
            '于',
            '惠',
            '甄',
            '曲',
            '封',
            '储',
            '仲',
            '伊',
            '宁',
            '仇',
            '甘',
            '武',
            '符',
            '刘',
            '景',
            '詹',
            '龙',
            '叶',
            '幸',
            '司',
            '黎',
            '溥',
            '印',
            '怀',
            '蒲',
            '邰',
            '从',
            '索',
            '赖',
            '卓',
            '屠',
            '池',
            '乔',
            '胥',
            '闻',
            '莘',
            '党',
            '翟',
            '谭',
            '贡',
            '劳',
            '逄',
            '姬',
            '申',
            '扶',
            '堵',
            '冉',
            '宰',
            '雍',
            '桑',
            '寿',
            '通',
            '燕',
            '浦',
            '尚',
            '农',
            '温',
            '别',
            '庄',
            '晏',
            '柴',
            '瞿',
            '阎',
            '连',
            '习',
            '容',
            '向',
            '古',
            '易',
            '廖',
            '庾',
            '终',
            '步',
            '都',
            '耿',
            '满',
            '弘',
            '匡',
            '国',
            '文',
            '寇',
            '广',
            '禄',
            '阙',
            '东',
            '欧',
            '利',
            '师',
            '巩',
            '聂',
            '关',
            '荆',
            '司马',
            '上官',
            '欧阳',
            '夏侯',
            '诸葛',
            '闻人',
            '东方',
            '赫连',
            '皇甫',
            '尉迟',
            '公羊',
            '澹台',
            '公冶',
            '宗政',
            '濮阳',
            '淳于',
            '单于',
            '太叔',
            '申屠',
            '公孙',
            '仲孙',
            '轩辕',
            '令狐',
            '徐离',
            '宇文',
            '长孙',
            '慕容',
            '司徒',
            '司空',
            '皮'
        ];
        /**
         * 名
         */
        $arrMing = [
            '伟',
            '刚',
            '勇',
            '毅',
            '俊',
            '峰',
            '强',
            '军',
            '平',
            '保',
            '东',
            '文',
            '辉',
            '力',
            '明',
            '永',
            '健',
            '世',
            '广',
            '志',
            '义',
            '兴',
            '良',
            '海',
            '山',
            '仁',
            '波',
            '宁',
            '贵',
            '福',
            '生',
            '龙',
            '元',
            '全',
            '国',
            '胜',
            '学',
            '祥',
            '才',
            '发',
            '武',
            '新',
            '利',
            '清',
            '飞',
            '彬',
            '富',
            '顺',
            '信',
            '子',
            '杰',
            '涛',
            '昌',
            '成',
            '康',
            '星',
            '光',
            '天',
            '达',
            '安',
            '岩',
            '中',
            '茂',
            '进',
            '林',
            '有',
            '坚',
            '和',
            '彪',
            '博',
            '诚',
            '先',
            '敬',
            '震',
            '振',
            '壮',
            '会',
            '思',
            '群',
            '豪',
            '心',
            '邦',
            '承',
            '乐',
            '绍',
            '功',
            '松',
            '善',
            '厚',
            '庆',
            '磊',
            '民',
            '友',
            '裕',
            '河',
            '哲',
            '江',
            '超',
            '浩',
            '亮',
            '政',
            '谦',
            '亨',
            '奇',
            '固',
            '之',
            '轮',
            '翰',
            '朗',
            '伯',
            '宏',
            '言',
            '若',
            '鸣',
            '朋',
            '斌',
            '梁',
            '栋',
            '维',
            '启',
            '克',
            '伦',
            '翔',
            '旭',
            '鹏',
            '泽',
            '晨',
            '辰',
            '士',
            '以',
            '建',
            '家',
            '致',
            '树',
            '炎',
            '德',
            '行',
            '时',
            '泰',
            '盛',
            '雄',
            '琛',
            '钧',
            '冠',
            '策',
            '腾',
            '楠',
            '榕',
            '风',
            '航',
            '弘',
            '秀',
            '娟',
            '英',
            '华',
            '慧',
            '巧',
            '美',
            '娜',
            '静',
            '淑',
            '惠',
            '珠',
            '翠',
            '雅',
            '芝',
            '玉',
            '萍',
            '红',
            '娥',
            '玲',
            '芬',
            '芳',
            '燕',
            '彩',
            '春',
            '菊',
            '兰',
            '凤',
            '洁',
            '梅',
            '琳',
            '素',
            '云',
            '莲',
            '真',
            '环',
            '雪',
            '荣',
            '爱',
            '妹',
            '霞',
            '香',
            '月',
            '莺',
            '媛',
            '艳',
            '瑞',
            '凡',
            '佳',
            '嘉',
            '琼',
            '勤',
            '珍',
            '贞',
            '莉',
            '桂',
            '娣',
            '叶',
            '璧',
            '璐',
            '娅',
            '琦',
            '晶',
            '妍',
            '茜',
            '秋',
            '珊',
            '莎',
            '锦',
            '黛',
            '青',
            '倩',
            '婷',
            '姣',
            '婉',
            '娴',
            '瑾',
            '颖',
            '露',
            '瑶',
            '怡',
            '婵',
            '雁',
            '蓓',
            '纨',
            '仪',
            '荷',
            '丹',
            '蓉',
            '眉',
            '君',
            '琴',
            '蕊',
            '薇',
            '菁',
            '梦',
            '岚',
            '苑',
            '婕',
            '馨',
            '瑗',
            '琰',
            '韵',
            '融',
            '园',
            '艺',
            '咏',
            '卿',
            '聪',
            '澜',
            '纯',
            '毓',
            '悦',
            '昭',
            '冰',
            '爽',
            '琬',
            '茗',
            '羽',
            '希',
            '欣',
            '飘',
            '育',
            '滢',
            '馥',
            '筠',
            '柔',
            '竹',
            '霭',
            '凝',
            '晓',
            '欢',
            '霄',
            '枫',
            '芸',
            '菲',
            '寒',
            '伊',
            '亚',
            '宜',
            '可',
            '姬',
            '舒',
            '影',
            '荔',
            '枝',
            '丽',
            '阳',
            '妮',
            '宝',
            '贝',
            '初',
            '程',
            '梵',
            '罡',
            '恒',
            '鸿',
            '桦',
            '骅',
            '剑',
            '娇',
            '纪',
            '宽',
            '苛',
            '灵',
            '玛',
            '媚',
            '琪',
            '晴',
            '容',
            '睿',
            '烁',
            '堂',
            '唯',
            '威',
            '韦',
            '雯',
            '苇',
            '萱',
            '阅',
            '彦',
            '宇',
            '雨',
            '洋',
            '忠',
            '宗',
            '曼',
            '紫',
            '逸',
            '贤',
            '蝶',
            '菡',
            '绿',
            '蓝',
            '儿',
            '翠',
            '烟'
        ];

        if ($type == 1) {
            $tou_num = rand(0, count($nicheng_tou) - 1);
            $wei_num = rand(0, count($nicheng_wei) - 1);
            $nicheng = $nicheng_tou[$tou_num] . $nicheng_wei[$wei_num];
        } else if ($type == 2) {
            $nicheng = $arrXing[mt_rand(0, count($arrXing) - 1)];
            for ($i = 1; $i <= 3; $i++) {
                $nicheng .= (mt_rand(0, 1) ? $arrMing[mt_rand(0, count($arrMing) - 1)] : $arrMing[mt_rand(0, count($arrMing) - 1)]);
            }
        } else {
            $nicheng = "帅气的荔枝";
        }
        return $nicheng;
    }
}
